Computer-executable instructions can fail to provide an expected result due either to an improper programming of the computer-executable instructions, or due to a hardware or other error that is beyond the scope of the computer-executable instructions. Traditionally, the authors of computer-executable instructions have sought to minimize the former. To those ends, modern operating systems and software applications for computing devices often provide mechanisms by which errors occurring during their execution can be diagnosed. Such mechanisms traditionally include the provision of information to a capable party, such as a programmer of the operating system or software application. Using the information provided, an analysis of individual sections of computer-executable instructions can be undertaken in an effort to determine the cause of the error.
As operating systems and other software applications increase in both complexity and in interoperability, diagnosing the source of an error, or deviation from an expected result, can become significantly more complicated. In particular, an error experienced by one software application, or a component thereof, may be the result of operations performed by another application or component. Efforts to collect a sufficient amount of information associated with the error can become burdensome, for both the user of the software application and for those investigating the error, if multiple components or applications are potentially involved. For example, a single software component may provide useful functionality or services to multiple other components and applications. Such a component may comprise, or be associated with, a myriad of data of which only a small percentage may be relevant to an error experienced by another component that was using the services provided by the former.